package com.sky.loveshop.service;

import com.github.pagehelper.PageInfo;
import com.sky.loveshop.entity.Sku;
import com.sky.loveshop.entity.exception.BizException;
import com.sky.loveshop.entity.qo.PrivateOrderRequest;
import com.sky.loveshop.entity.qo.SkuQO;
import com.sky.loveshop.entity.qo.StockParam;
import com.sky.loveshop.entity.qo.StockRequest;
import com.sky.loveshop.entity.vo.SkuVO;

import java.util.List;

/**
 * @author xcy
 * @version V1.0
 * @description
 * @date 2024/8/18 0:05
 */
public interface SkuService {

    List<SkuVO> listSku(SkuQO qo);

    PageInfo<SkuVO> listSkuPages(SkuQO qo);

    SkuVO getSkuById(Integer id) throws BizException;

    SkuVO getSkuByProductAndShopId(Integer productId, Integer shopId);

    SkuVO getShelfIdByProductIdAndShopId(Integer productId, Integer shopId);

    List<SkuVO> getSkuListByIds(List<Integer> ids);

    List<SkuVO> getSkuListByShelfIds(List<Integer> ids) throws BizException, Exception;

    Integer addSku(Sku sku);

    Integer delSkuById(Integer id);

    Integer updateSkuById(Sku sku);

    Integer changeStockNum(StockParam stockParam);

    PageInfo<SkuVO> getDangerNumberList(StockRequest.Q1 req);

    List<Sku> getSkuListByShoIdAndSkuId(Integer shopId, List<Integer> productIdList);

    List<SkuVO> getSkuVOByShopIdAndName(PrivateOrderRequest.Q1 req);
}
